#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const int INF=0x3f3f3f3f;
const int N=1e5+10,M=1e8+2;
int v[M];
int p[N];
int idx=0;
int main()
{
	
    for(int i=2;i<=M;i++)
    {
    	if(!v[i])
    	{
    		p[idx]=i;
    		v[i]=i;
    		idx++;
		}
		for(int j=0;j<idx;j++)
		{
			if(p[j]>M/i || p[j]>v[i]) break;
			v[p[j]*i]=p[j];
		}
	}
	int n,m;
	scanf("%d %d",&n,&m);
	while(m--)
	{
		int q;
		scanf("%d",&q);
		printf("%d\n",p[q-1]);
	}
	

	return 0;
}

